using System;

namespace UnitTesting.Fixturing
{
	static class SimpleValues
	{
		internal static byte CreateByte(int number)
		{
			return (byte) (number%Byte.MaxValue);
		}

		internal static short CreateInt16(int number)
		{
			return (Int16) (number%Int16.MaxValue);
		}

		internal static ushort CreateUInt16(int number)
		{
			return (UInt16) (number%UInt16.MaxValue);
		}

		internal static int CreateInt(int number)
		{
			return number%Int32.MaxValue;
		}

		internal static uint CreateUInt32(int number)
		{
			return (UInt32) number%Int32.MaxValue;
		}

		internal static long CreateInt64(int number)
		{
			return (Int64) number%Int32.MaxValue;
		}

		internal static ulong CreateUInt64(int number)
		{
			return (UInt64) number%Int32.MaxValue;
		}

		internal static float CreateSingle(int number)
		{
			return (Single) number%Int32.MaxValue;
		}

		internal static double CreateDouble(int number)
		{
			return (Double) number%Int32.MaxValue;
		}

		internal static sbyte CreateSbyte(int number)
		{
			return (SByte) (number%SByte.MaxValue);
		}

		internal static decimal CreateDecimal(int number)
		{
			return (Decimal) number%Int32.MaxValue;
		}

		internal static char CreateCharFromAtoZ(int number)
		{
			return (char) (97 + number%26);
		}

		internal static bool CreateTrueOrFalse(int number)
		{
			return number%2 == 0;
		}

		internal static string CreateAnonymousString(int number)
		{
			return "AnonymousString" + number;
		}

		internal static DateTime CreateDateTime(int number)
		{
			return DateTime.Now.AddDays(number);
		}
	}
}